<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>portablectl
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>portablectl 中文手册</h1><h2 id="auth_name">译者：<strong><a href="../index.html">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="../index.html">金步国作品集</a> [ <a href="../index.html">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="portablectl"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>portablectl — 安装、卸载、查看便携式服务镜像</p></div><div class="refsynopsisdiv"><h2>大纲</h2><div class="cmdsynopsis"><p><code class="command">portablectl</code>  [OPTIONS...] {COMMAND} [NAME...]</p></div></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="portablectl.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p><span class="command"><strong>portablectl</strong></span> 用于安装(attach)、卸载(detach)、查看(inspect) 便携式服务(Portable Service)镜像，它是
     <a href="systemd-portabled.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd-portabled.service</span>(8)</span></a>
    服务的命令行接口。</p><p>便携式服务镜像中包含操作系统目录树以及
    <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a> 单元文件。
    便携式服务镜像可以被"安装"(attach)到本地系统中。安装之后，将会从镜像中复制一组单元文件到宿主机内，
    并通过自动生成单元配置片段的方式，将 service 单元的 <code class="varname">RootDirectory=</code> 或 <code class="varname">RootImage=</code>
    指向该镜像(一个目录或一个文件)，
    以确保服务单元只能运行在镜像内的文件系统范围内。</p><p>如果想把多个服务以及辅助单元打包在一起，作为一个整体在不同的主机之间部署，那么使用便携式服务镜像是一个非常有效的途径。
    被安装到宿主系统中的便携式服务镜像内的单元非常类似于原生安装在宿主系统上的常规系统单元，
    取决于所选 PROFILE 的不同，
    这些单元在运行时要么具有全部特权、要么被严格限制在沙盒中。</p><p>有效的便携式服务镜像可以是下列几种之一：</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>操作系统目录树，包含顶层目录 <code class="filename">/usr/</code>,
      <code class="filename">/etc/</code>,... 等等。</p></li><li class="listitem"><p>包含操作系统目录树的 btrfs 子卷。</p></li><li class="listitem"><p>包含 MBR 或 GPT 分区表以及 Linux 文件系统分区的二进制原始磁盘镜像文件。
      注意，镜像文件必须是一个后缀名为 <code class="filename">.raw</code> 的普通文件。</p></li></ul></div></div><div class="refsect1"><a name="id-1.6"></a><h2 id="选项(OPTIONS)">选项(OPTIONS)<a class="headerlink" title="Permalink to this headline" href="portablectl.html#%E9%80%89%E9%A1%B9(OPTIONS)">¶</a></h2><p>能够识别的命令行选项如下：</p><div class="variablelist"><dl class="variablelist"><dt id="-q"><span class="term"><code class="option">-q</code>, </span><span class="term"><code class="option">--quiet</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#-q">¶</a></dt><dd><p>禁止在运行时输出额外的信息。</p></dd><dt id="-p PROFILE"><span class="term"><code class="option">-p</code> <em class="replaceable"><code>PROFILE</code></em>, </span><span class="term"><code class="option">--profile=</code><em class="replaceable"><code>PROFILE</code></em></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#-p%20PROFILE">¶</a></dt><dd><p>在安装便携式服务镜像的同时选择所使用的 profile ，默认为 "<code class="literal">default</code>" 。
        详见后面的 Profile 小节。</p></dd><dt id="--copy="><span class="term"><code class="option">--copy=</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#--copy=">¶</a></dt><dd><p>在安装便携式服务镜像时采用何种方式向宿主系统中安装单元文件。
        取值范围如下： "<code class="literal">copy</code>"(拷贝文件)； "<code class="literal">symlink</code>"(使用软连接)；
         "<code class="literal">auto</code>"(拷贝单元文件、软连接 profile 单元配置片段)。
        注意，此选项只是尽可能按照指定的方式完成单元文件的安装，
        如果实在无法创建软连接，
        例如当镜像是一个二进制原始磁盘镜像文件的时候，
        那么将无条件的使用拷贝方式完成单元文件的安装。</p></dd><dt id="--runtime"><span class="term"><code class="option">--runtime</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#--runtime">¶</a></dt><dd><p>将单元文件与单元配置片段安装到
        <code class="filename">/run/systemd/system.attached/</code> 目录中，而不是默认的
        <code class="filename">/etc/systemd/system.attached/</code> 目录中。
        使用此选项安装的便携式服务镜像仅是临时性的，在宿主系统重启之后就会消失。</p></dd><dt id="--no-reload"><span class="term"><code class="option">--no-reload</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#--no-reload">¶</a></dt><dd><p>在安装或卸载便携式服务镜像之后，禁止重新加载 systemd 服务管理器的配置信息。
        通常情况下，在安装或卸载便携式服务镜像之后，都会自动重新加载 systemd 服务管理器的配置信息，
        以确保即时了解单元文件的变动情况。</p></dd><dt id="--cat"><span class="term"><code class="option">--cat</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#--cat">¶</a></dt><dd><p>在查看便携式服务镜像时，显示镜像中元数据文件的原始内容，而不是仅显示一些简略的汇总信息。
        特别地，这将显示镜像中的
        <a href="os-release.html#"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>
        文件与单元文件的具体内容。</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#-H">¶</a></dt><dd><p><a name="host-text"></a>操作指定的远程主机。可以仅指定一个主机名(hostname)，
      也可以使用 "<code class="literal">username@hostname</code>" 格式。
      hostname 后面还可以加上
      SSH监听端口(以冒号"<code class="literal">:</code>"分隔)与容器名(以正斜线"<code class="literal">/</code>"分隔)，
      也就是形如 "<code class="literal">hostname:port/container</code>" 的格式，
      以表示直接连接到指定主机的指定容器内。
      操作将通过SSH协议进行，以确保安全。
      可以通过
      <span class="command"><strong>machinectl -H
      <em class="replaceable"><code>HOST</code></em></strong></span> 命令列出远程主机上的所有容器名称。IPv6地址必须放在方括号([])内。</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#-M">¶</a></dt><dd><p><a name="machine-text"></a>在本地容器内执行操作。
      必须明确指定容器的名称。</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#--no-pager">¶</a></dt><dd><p>不将程序的输出内容管道(pipe)给分页程序。</p></dd><dt id="--no-legend"><span class="term"><code class="option">--no-legend</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#--no-legend">¶</a></dt><dd><p>不输出列标题，
      也就是不在输出列表的头部和尾部显示字段的名称。</p></dd><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#--no-ask-password">¶</a></dt><dd><p>在执行特权操作时不向用户索要密码。</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#-h">¶</a></dt><dd><p><a name="help-text"></a>显示简短的帮助信息并退出。
    </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#--version">¶</a></dt><dd><p><a name="version-text"></a>显示简短的版本信息并退出。</p></dd></dl></div></div><div class="refsect1"><a name="id-1.7"></a><h2 id="命令(COMMAND)">命令(COMMAND)<a class="headerlink" title="Permalink to this headline" href="portablectl.html#%E5%91%BD%E4%BB%A4(COMMAND)">¶</a></h2><p>能够识别的命令如下：</p><div class="variablelist"><dl class="variablelist"><dt id="list"><span class="term"><span class="command"><strong>list</strong></span></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#list">¶</a></dt><dd><p>列出所有在便携式服务镜像搜索路径(详见"文件与目录"小节)中找到的镜像。
        此命令还会同时显示镜像的简要元数据与状态信息。
        注意，因为下面的许多命令都可以处理镜像搜索路径之外的便携式服务镜像，
        所以其他命令能够处理的镜像
        并不只局限于此命令的输出列表。</p></dd><dt id="attach IMAGE [PREFIX…]"><span class="term"><span class="command"><strong>attach</strong></span> <em class="replaceable"><code>IMAGE</code></em> [<em class="replaceable"><code>PREFIX…</code></em>]</span><a class="headerlink" title="Permalink to this term" href="portablectl.html#attach%20IMAGE%20%5BPREFIX%E2%80%A6%5D">¶</a></dt><dd><p>向宿主系统中安装一个便携式服务镜像。
        <em class="replaceable"><code>IMAGE</code></em> 必须是一个指向便携式服务镜像的文件系统路径，
        如果其中不含路径分隔符("<code class="literal">/</code>")，
        那么将被视为一个位于便携式服务镜像搜索路径(详见"文件与目录"小节)中的镜像名称([译者注]不含".raw"后缀)。
        如果想要安装当前工作目录中的镜像，那么应该在路径的开头使用 "<code class="literal">./</code>" 以避免混淆。</p><p>向宿主系统中安装一个便携式服务镜像时，将会执行如下四个操作：</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>镜像内所有 <code class="filename">.service</code>, <code class="filename">.socket</code>,
          <code class="filename">.target</code>, <code class="filename">.timer</code>, <code class="filename">.path</code> 类型、
          并且单元名称前缀与镜像名称前缀相同的单元文件，都将被安装(拷贝或软连接)到宿主系统的
          <code class="filename">/etc/systemd/system.attached/</code> 或
          <code class="filename">/run/systemd/system.attached/</code>(使用了 <code class="option">--runtime</code> 选项) 目录中。
          而这两个目录都包含在
          宿主系统的系统单元目录之中。</p></li><li class="listitem"><p>对于 <code class="filename">.service</code> 类型的单元文件，自动在宿主系统中创建对应的单元配置片段，
          并根据不同的镜像类型(目录或文件)，将 <code class="varname">RootDirectory=</code> 或 <code class="varname">RootImage=</code> (详见
          <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
          手册)指向镜像的路径，
          以确保被安装的服务单元仅运行在所属镜像内的文件系统之中。</p></li><li class="listitem"><p>对于 <code class="filename">.service</code> 类型的单元文件，自动在宿主系统中以软连接方式引入"profile"单元配置片段，
          从而对便携式服务施加额外的安全限制(可能还有其他限制)。除了软件包自带的预定义 profile 之外，
          系统管理员还可以自定义其他的 profile (详见"Profile"小节)。</p></li><li class="listitem"><p>如果被安装的镜像不在标准搜索路径中(详见"文件与目录"小节)，
          那么将会在 <code class="filename">/etc/portables/</code> 或 <code class="filename">/run/portables/</code>(使用了 <code class="option">--runtime</code> 选项)
          目录中创建一个指向该镜像的软连接，以确保该镜像被包含在标准搜索路径中。</p></li></ol></div><p>如果省略了 <em class="replaceable"><code>PREFIX…</code></em>(单元名称前缀)，那么镜像中所有单元名称前缀与镜像名称前缀相同的单元文件，
        都将被安装(拷贝或软连接)到宿主系统中。镜像名称前缀是指首先从镜像文件名中去除可能存在的后缀名(例如
        <code class="filename">.raw</code>)、
        然后再去除可能存在的第一个下划线("<code class="literal">_</code>")以及之后的部分，最终所得到的字符串。
        例如镜像文件 <code class="filename">foobar_47.11.raw</code> 的前缀是
        <code class="filename">foobar</code> ([译者注]对应的镜像名称是"foobar_47.11")。
        单元名称前缀是指镜像内单元文件名称中第一个 "<code class="literal">-</code>",
        "<code class="literal">.</code>", "<code class="literal">@</code>" 字符之前的部分。例如，对于文件名为
        <code class="filename">foobar_47.11.raw</code> 的镜像来说，该镜像内名为
        <code class="filename">foobar-quux-waldi.service</code>, <code class="filename">foobar.service</code>,
        <code class="filename">foobar@.service</code> 的单元文件都将被安装到宿主系统中。
        如果明确指定了 <em class="replaceable"><code>PREFIX…</code></em>(单元名称前缀)，
        那么将无视镜像名称，直接用指定的一组单元名称前缀进行匹配。</p><p>除非使用了 <code class="option">--no-reload</code> 选项，
        否则，在安装便携式服务镜像之后，都会自动重新加载 systemd 服务管理器的配置信息，
        以确保宿主系统能够立即看到新安装的单元。</p></dd><dt id="detach IMAGE"><span class="term"><span class="command"><strong>detach</strong></span> <em class="replaceable"><code>IMAGE</code></em></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#detach%20IMAGE">¶</a></dt><dd><p>从宿主系统中卸载一个先前已安装的便携式服务镜像，也就是撤销
        <span class="command"><strong>attach</strong></span> 命令所做的全部动作。
        <em class="replaceable"><code>IMAGE</code></em> 必须是一个便携式服务镜像的名称或路径。
        注意，如果给出的是一个路径，
        那么实际只会根据路径末尾的文件名或目录名来确定镜像名称(去掉可能存在的 <code class="filename">.raw</code> 后缀)，
        因此不建议使用路径。</p></dd><dt id="inspect IMAGE [PREFIX…]"><span class="term"><span class="command"><strong>inspect</strong></span> <em class="replaceable"><code>IMAGE</code></em> [<em class="replaceable"><code>PREFIX…</code></em>]</span><a class="headerlink" title="Permalink to this term" href="portablectl.html#inspect%20IMAGE%20%5BPREFIX%E2%80%A6%5D">¶</a></dt><dd><p>查看便携式服务镜像中的各种元数据。
        也就是显示镜像内
        <a href="os-release.html#"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>
        以及匹配单元的相关信息。
        默认只显示简要的关键信息以及匹配的单元文件(也就是会被
        <span class="command"><strong>attach</strong></span> 安装到宿主系统中的单元文件)。如果指定了 <code class="option">--cat</code> 选项，
        那么将会显示镜像内 <code class="filename">os-release</code> 文件以及匹配的单元文件的原始内容。
        此命令主要用于检查给定的镜像是否是一个合格的便携式服务镜像，以及镜像中包含了哪些单元文件。
         <em class="replaceable"><code>IMAGE</code></em> [<em class="replaceable"><code>PREFIX…</code></em>] 的含义与
        <span class="command"><strong>attach</strong></span> 命令完全相同。</p></dd><dt id="is-attached IMAGE"><span class="term"><span class="command"><strong>is-attached</strong></span> <em class="replaceable"><code>IMAGE</code></em></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#is-attached%20IMAGE">¶</a></dt><dd><p>检查指定的镜像当前是否已经被安装到宿主系统中。除非使用了
        <code class="option">--quiet</code> 选项，否则将会显示下列状态标识符之一：</p><div class="table"><a name="id-1.7.3.5.2.2"></a><p class="title"><b>表 1. 镜像的安装状态</b></p><div class="table-contents"><table class="table" summary="镜像的安装状态" border="1"><colgroup><col class="state"><col class="description"></colgroup><thead><tr><th>状态</th><th>描述</th></tr></thead><tbody><tr><td><code class="option">detached</code></td><td>没有安装</td></tr><tr><td><code class="option">attached</code></td><td>已经持久安装，并且该镜像的单元文件已经可以在宿主系统中持久使用。</td></tr><tr><td><code class="option">attached-runtime</code></td><td>已经临时安装(执行 <span class="command"><strong>attach</strong></span> 命令时带有 <code class="option">--runtime</code> 选项)，并且该镜像的单元文件已经可以在宿主系统中临时使用。</td></tr><tr><td><code class="option">enabled</code></td><td>已经持久安装，并且至少有一个镜像中的单元已经被持久启用。</td></tr><tr><td><code class="option">enabled-runtime</code></td><td>已经临时安装(执行 <span class="command"><strong>attach</strong></span> 命令时带有 <code class="option">--runtime</code> 选项)，并且至少有一个镜像中的单元已经被临时启用。</td></tr><tr><td><code class="option">running</code></td><td>已经持久安装，并且至少有一个镜像中的单元已经处于运行状态。</td></tr><tr><td><code class="option">running-runtime</code></td><td>已经临时安装(执行 <span class="command"><strong>attach</strong></span> 命令时带有 <code class="option">--runtime</code> 选项)，并且至少有一个镜像中的单元已经处于运行状态。</td></tr></tbody></table></div></div><br class="table-break"></dd><dt id="read-only IMAGE [BOOL]"><span class="term"><span class="command"><strong>read-only</strong></span> <em class="replaceable"><code>IMAGE</code></em> [<em class="replaceable"><code>BOOL</code></em>]</span><a class="headerlink" title="Permalink to this term" href="portablectl.html#read-only%20IMAGE%20%5BBOOL%5D">¶</a></dt><dd><p>设置或取消一个便携式服务镜像的只读标记。 <em class="replaceable"><code>IMAGE</code></em> 是镜像的名称(不含".raw"后缀)或文件系统绝对路径。
        如果省略 <em class="replaceable"><code>BOOL</code></em> 参数，那么表示使用其默认值 yes ，
        也就是设置为只读。</p></dd><dt id="remove IMAGE…"><span class="term"><span class="command"><strong>remove</strong></span> <em class="replaceable"><code>IMAGE</code></em>…</span><a class="headerlink" title="Permalink to this term" href="portablectl.html#remove%20IMAGE%E2%80%A6">¶</a></dt><dd><p>删除一个或多个便携式服务镜像。<em class="replaceable"><code>IMAGE</code></em> 是镜像的名称(不含".raw"后缀)或文件系统绝对路径。
        注意，对于通过软连接引入标准搜索路径中的镜像来说，如果只指定镜像名称，那么只会删除软连接，
        而不会删除实际的镜像本身。</p></dd><dt id="set-limit [IMAGE] BYTES"><span class="term"><span class="command"><strong>set-limit</strong></span> [<em class="replaceable"><code>IMAGE</code></em>] <em class="replaceable"><code>BYTES</code></em></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#set-limit%20%5BIMAGE%5D%20BYTES">¶</a></dt><dd><p>为单个或全体便携式服务镜像设置最大磁盘用量(磁盘限额)。
        可选的 [<em class="replaceable"><code>IMAGE</code></em>] 是镜像的名称(不含".raw"后缀)或文件系统绝对路径，
        若省略则表示设置全部镜像的磁盘限额总量。
         <em class="replaceable"><code>BYTES</code></em> 是字节数(可以使用 K, M, G, T 后缀)，
        特殊值
        "<code class="literal">-</code>" 表示取消限额。</p><p>注意，针对单个镜像的磁盘限额仅在 btrfs 文件系统上才支持。虽然便携式服务单元内
        <code class="varname">BindPaths=</code> 所引用的宿主系统目录在镜像内可见，
        但是并不计算在磁盘限额之中，
        磁盘限额仅作用于镜像自身。</p></dd></dl></div></div><div class="refsect1"><a name="id-1.8"></a><h2 id="文件与目录">文件与目录<a class="headerlink" title="Permalink to this headline" href="portablectl.html#%E6%96%87%E4%BB%B6%E4%B8%8E%E7%9B%AE%E5%BD%95">¶</a></h2><p>便携式服务镜像首选的存放目录是 <code class="filename">/var/lib/portables/</code> ，除此之外，
    还会自动依次搜索 <code class="filename">/etc/portables/</code>, <code class="filename">/run/systemd/portables/</code>,
    <code class="filename">/usr/local/lib/portables/</code>, <code class="filename">/usr/lib/portables/</code> 目录。
    禁止将便携式服务镜像直接存放在 <code class="filename">/etc/portables/</code> 或
    <code class="filename">/run/systemd/portables/</code> 目录中(这两个目录一般不存储大文件与非文本文件)，
    这两个目录只用于以软连接的方式将不在标准搜索路径中的镜像添加到标准搜索路径中来。</p><p>在安装便携式服务镜像时，镜像中匹配的单元文件将会被安装(拷贝或软连接)到宿主系统的
    <code class="filename">/etc/systemd/system.attached/</code> 或 <code class="filename">/run/systemd/system.attached/</code>
    目录中。卸载便携式服务镜像时，将会从宿主系统中删除之前安装的单元文件。</p></div><div class="refsect1"><a name="id-1.9"></a><h2 id="Profile">Profile<a class="headerlink" title="Permalink to this headline" href="portablectl.html#Profile">¶</a></h2><p>在安装便携式服务镜像时，对于服务单元，将会自动在宿主系统中以软连接方式引入"profile"单元配置片段，
    从而对便携式服务施加额外的安全限制(可能还有其他限制)。除了软件包自带的四个预定义 profile (位于
    <code class="filename">/usr/lib/systemd/portable/profile/</code> 目录中)之外，系统管理员还可以在
     <code class="filename">/etc/systemd/portable/profile/</code> 目录中创建自定义的"profile"。四个预定义 profiles 的简介如下：</p><div class="table"><a name="id-1.9.3"></a><p class="title"><b>表 2. Profile</b></p><div class="table-contents"><table class="table" summary="Profile" border="1"><colgroup><col class="state"><col class="description"></colgroup><thead><tr><th>名称</th><th>描述</th></tr></thead><tbody><tr><td><code class="filename">default</code></td><td>这是 <code class="option">--profile=</code> 选项的默认值，适用于常规的非特权系统服务。仅允许使用宿主系统的：日志、D-Bus 进程间通信、网络。</td></tr><tr><td><code class="filename">nonetwork</code></td><td>与 <code class="filename">default</code> 相似，不同之处在于禁止使用网络资源。</td></tr><tr><td><code class="filename">strict</code></td><td>非常严苛的限制，仅允许使用宿主系统日志(禁止使用 D-Bus 与网络)。</td></tr><tr><td><code class="filename">trusted</code></td><td>完全信任、不施加任何限制，可以使用全部系统特权。</td></tr></tbody></table></div></div><br class="table-break"><p>想要了解更多细节，可以直接查看
    例如 <code class="filename">/usr/lib/systemd/portable/profile/default/service.conf</code> 这样的文件。</p></div><div class="refsect1"><a name="id-1.10"></a><h2 id="退出状态">退出状态<a class="headerlink" title="Permalink to this headline" href="portablectl.html#%E9%80%80%E5%87%BA%E7%8A%B6%E6%80%81">¶</a></h2><p>返回值为 0 表示成功，非零返回值表示失败代码。</p></div><div class="refsect1"><a name="id-1.11"></a><h2 id="环境变量">环境变量<a class="headerlink" title="Permalink to this headline" href="portablectl.html#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#%24SYSTEMD_PAGER">¶</a></dt><dd><p>指定分页程序。仅在未指定 <code class="option">--no-pager</code> 选项时有意义。
      此变量会覆盖 <code class="varname">$PAGER</code> 的值。如果 <code class="varname">$SYSTEMD_PAGER</code> 与 <code class="varname">$PAGER</code> 都未设置，
      那么将会依次尝试如下常见的分页程序：
      <a href="http://man7.org/linux/man-pages/man1/less.1.html"><span class="citerefentry"><span class="refentrytitle">less</span>(1)</span></a>,
      <a href="http://man7.org/linux/man-pages/man1/more.1.html"><span class="citerefentry"><span class="refentrytitle">more</span>(1)</span></a>,
      如果最终仍未找到分页程序，那么将不使用分页。
      将此变量设为空字符串或 "<code class="literal">cat</code>" 等价于使用 <code class="option">--no-pager</code> 选项。</p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#%24SYSTEMD_LESS">¶</a></dt><dd><p>用于覆盖默认传递给 <span class="command"><strong>less</strong></span>
      程序的命令行选项("<code class="literal">FRSXMK</code>")。</p><p>如果 <code class="varname">$SYSTEMD_LESS</code> 的值不含 "<code class="literal">K</code>" ，
      并且使用 <span class="command"><strong>less</strong></span> 作为分页程序，那么
      <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span> 信号将会被忽略。
      这将允许 <span class="command"><strong>less</strong></span> 自己处理
      <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span> 信号。</p></dd><dt id="$SYSTEMD_LESSCHARSET"><span class="term"><code class="varname">$SYSTEMD_LESSCHARSET</code></span><a class="headerlink" title="Permalink to this term" href="portablectl.html#%24SYSTEMD_LESSCHARSET">¶</a></dt><dd><p>用于覆盖默认传递给 <span class="command"><strong>less</strong></span> 程序的字符集。
      (如果终端兼容 UTF-8 ，那么默认值是 "<code class="literal">utf-8</code>" )</p></dd></dl></div></div><div class="refsect1"><a name="id-1.12"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="portablectl.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
      <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
      <a href="systemd-portabled.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd-portabled.service</span>(8)</span></a>
    </p></div></div></body></html>
